require(['layer','icheck'], function(layer,icheck){

	// 更改商品数量
	updateGoodsQuantity = function(){

		//减少
		$(".reduce_num").click(function(){

			var amount = $(this).parent().find(".amount");

			if (parseInt($(amount).val()) <= 1){
				layer.alert('商品数量不能少于1',{icon: 5});
				return false;
			}

			$(amount).val(parseInt($(amount).val()) - 1);

			var tr             = $(this).parent().parent();
			var goods_id       = tr.attr("goods-id");
			var goods_spec_key = tr.attr("goods-spec-key");
			var update_url     = tr.attr("update-url");

			// 执行AJAX更新到服务器
			_ajaxUpdateCartData(update_url,goods_id, goods_spec_key, $(amount).val());

			// 小计
			var subtotal = tr.find(".product-subtotal");
			var unit_price = tr.find('.product-price').text();
			subtotal.text( parseFloat( unit_price ) * parseInt( $(amount).val() ) );

			//总价
			_getTotal();
		});

		//增加
		$(".add_num").click(function(){

			var amount = $(this).parent().find(".amount");

			if (parseInt($(amount).val()) >= 200){
				layer.alert('商品数量不能大于200',{icon: 5});
				return false;
			}

			$(amount).val(parseInt($(amount).val()) + 1);

			var tr             = $(this).parent().parent();
			var goods_id       = tr.attr("goods-id");
			var goods_spec_key = tr.attr("goods-spec-key");
			var update_url     = tr.attr("update-url");

			// 执行AJAX更新到服务器
			_ajaxUpdateCartData(update_url,goods_id, goods_spec_key, $(amount).val());

			// 小计
			var subtotal = tr.find(".product-subtotal");
			var unit_price = tr.find('.product-price').text();
			subtotal.text( parseFloat( unit_price ) * parseInt( $(amount).val() ) );

			//总价
			_getTotal();
		});

		//直接输入
		$(".amount").change(function(){
			if ( parseInt( $(this).val() ) < 1 ){
				layer.alert('商品数量不能少于1',{icon: 5});
				pageReload(1000);
				return false;
			}

			if ( parseInt( $(this).val() ) > 200 ){
				layer.alert('商品数量不能大于200',{icon: 5});
				pageReload(1000);
				return false;
			}

			var tr             = $(this).parent().parent();
			var goods_id       = tr.attr("goods-id");
			var goods_spec_key = tr.attr("goods-spec-key");
			var update_url     = tr.attr("update-url");

			// 执行AJAX更新到服务器
			_ajaxUpdateCartData(update_url,goods_id, goods_spec_key, $(this).val());

			// 小计
			var subtotal = tr.find(".product-subtotal");
			var unit_price = tr.find('.product-price').text();
			subtotal.text( parseFloat( unit_price ) * parseInt( $(this).val() ) );

			//总价
			_getTotal();

		});
	}

	// 勾选购物车商品操作
	buythisChange = function(){
		$("input[name='buythis[]']").on('ifChanged', function(event){
		  _getTotal();
		});
	}

	// 发送更新信息到服务器，并返回计算后的结果到小计与总价
	_ajaxUpdateCartData = function(url,goods_id, goods_spec_key, quantity){
		var params = {goods_id: goods_id,goods_spec_key: goods_spec_key,quantity: quantity};

		$.post(url, params);
	}

	// 获取总价
	_getTotal = function(){
		var total = 0;
		$(".product-subtotal").each(function(){
			var is_buy = $(this).parent().find("input[name='buythis[]']");
			if (is_buy.is(':checked')) {
				total += parseFloat( $(this).text() );
			}
		});
		$("#total").text( total );
	}

	// 删除
	del = function() {
		$('.delete-btn').click(function(){
			var self = $(this),
				id   = self.attr('data-id'),
				goods_spec_key   = self.attr('data-key'),
				url  = self.attr('data-url');
			layer.msg('确定要删除吗？', {
				time: 0 ,//不自动关闭,
				btn: ['确定', '关闭'],
				yes: function(index){
				    layer.close(index);
						var params = {id: id,goods_spec_key: goods_spec_key};
						$.post(url, params, function(json){
							if (json.code) {
								layer.alert(json.msg,{icon: 1});
								self.parent().parent().remove();
								_getTotal();
							} else {
								layer.alert(json.msg,{icon: 2});
							}
						}, 'json');
				}
			});
		});
	};

	// 清空购物车
	delAll = function(){
		$('.delete-all').click(function(){
			var self = $(this),
				url  = self.attr('data-url');
			layer.msg('确定要狠心清空购物车吗？', {
				time: 0 ,//不自动关闭,
				btn: ['确定', '关闭'],
				yes: function(index){
				    layer.close(index);
						$.get(url,  function(json){
							if (json.code) {
								layer.alert(json.msg,{icon: 1});
								pageReload(2000);
							}
						}, 'json');
				}
			});
		});
	}

	// 提交结算
	submitSettlement = function(){
		$('.submit-btn').click(function(){
			var buythis = $("input[name='buythis[]']:checked").val();
			if (!buythis) {
				layer.alert('请勾选需要购买的商品',{icon: 5});
				return false;
			}
			$('#settlementForm').submit();
		});
	}


	// 删除
	del();

	// 清空购物车
	delAll();

	// 更改商品数量
	updateGoodsQuantity();

	// 提交结算
	submitSettlement();

	// 勾选购物车商品操作
	buythisChange();

	// 单选框复选框样式事件
	iCheckStyle('select_all','buythis[]');


});

